home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 41.zip / BS1 part 41 / Devpac 2.12 disk 1.adf / include / exec / lists.i < prev    next >
Text File  |  1988-10-06  |  2KB  |  111 lines

  1.     IFND    EXEC_LISTS_I
  2. EXEC_LISTS_I    SET    1
  3.     IFND    EXEC_NODES_I
  4.     INCLUDE    "exec/nodes.i"
  5.     ENDC
  6.     rsreset
  7. LH    rs.b    0
  8. LH_HEAD    rs.l    1
  9. LH_TAIL    rs.l    1
  10. LH_TAILPRED    rs.l    1
  11. LH_TYPE    rs.b    1
  12. LH_pad    rs.b    1
  13. LH_SIZE    rs.w    0
  14.     rsreset
  15. MLH    rs.b    0
  16. MLH_HEAD    rs.l    1
  17. MLH_TAIL    rs.l    1
  18. MLH_TAILPRED    rs.l    1
  19. MLH_SIZE    rs.w    0
  20. NEWLIST    MACRO
  21.     MOVE.L    \1,(\1)
  22.     ADDQ.L    #LH_TAIL,(\1)
  23.     CLR.L    LH_TAIL(\1)
  24.     MOVE.L    \1,(LH_TAIL+LN_PRED)(\1)
  25.     ENDM
  26. TSTLIST    MACRO
  27.     IFC    '\1',''
  28.     CMP.L    LH_TAIL+LN_PRED(A0),A0
  29.     ENDC
  30.     IFNC    '\1',''
  31.     CMP.L    LH_TAIL+LN_PRED(\1),\1
  32.     ENDC
  33.     ENDM
  34. SUCC    MACRO
  35.     MOVE.L    (\1),\2
  36.     ENDM
  37. PRED    MACRO
  38.     MOVE.L    LN_PRED(\1),\2
  39.     ENDM
  40. IFEMPTY    MACRO
  41.     CMP.L    LH_TAIL+LN_PRED(\1),\1
  42.     BEQ    \2
  43.     ENDM
  44. IFNOTEMPTY    MACRO
  45.     CMP.L    LH_TAIL+LN_PRED(\1),\1
  46.     BNE    \2
  47.     ENDM
  48. TSTNODE    MACRO
  49.     MOVE.L    (\1),\2
  50.     TST.L    (\2)
  51.     ENDM
  52. NEXTNODE    MACRO
  53.     MOVE.L    \1,\2
  54.     MOVE.L    (\2),\1
  55.     IFC    '\0',''
  56.     BEQ    \3
  57.     ENDC
  58.     IFNC    '\0',''
  59.     BEQ.S    \3
  60.     ENDC
  61.     ENDM
  62. ADDHEAD    MACRO
  63.     MOVE.L    (A0),D0
  64.     MOVE.L    A1,(A0)
  65.     MOVEM.L    D0/A0,(A1)
  66.     MOVE.L    D0,A0
  67.     MOVE.L    A1,LN_PRED(A0)
  68.     ENDM
  69. ADDTAIL    MACRO
  70.     LEA    LH_TAIL(A0),A0
  71.     MOVE.L    LN_PRED(A0),D0
  72.     MOVE.L    A1,LN_PRED(A0)
  73.     MOVE.L    A0,(A1)
  74.     MOVE.L    D0,LN_PRED(A1)
  75.     MOVE.L    D0,A0
  76.     MOVE.L    A1,(A0)
  77.     ENDM
  78. REMOVE    MACRO
  79.     MOVE.L    (A1),A0
  80.     MOVE.L    LN_PRED(A1),A1
  81.     MOVE.L    A0,(A1)
  82.     MOVE.L    A1,LN_PRED(A0)
  83.     ENDM
  84. REMHEAD    MACRO
  85.     MOVE.L    (A0),A1
  86.     MOVE.L    (A1),D0
  87.     BEQ.S    REMHEAD\@
  88.     MOVE.L    D0,(A0)
  89.     EXG.L    D0,A1
  90.     MOVE.L    A0,LN_PRED(A1)
  91. REMHEAD\@
  92.     ENDM
  93. REMHEADQ    MACRO
  94.     MOVE.L    (\1),\2
  95.     MOVE.L    (\2),\3
  96.     MOVE.L    \3,(\1)
  97.     MOVE.L    \1,LN_PRED(\3)
  98.     ENDM
  99. REMTAIL    MACRO
  100.     MOVE.L    LH_TAIL+LN_PRED(A0),A1
  101.     MOVE.L    LN_PRED(A1),D0
  102.     BEQ.S    REMTAIL\@
  103.     MOVE.L    D0,LH_TAIL+LN_PRED(A0)
  104.     EXG.L    D0,A1
  105.     MOVE.L    A0,(A1)
  106.     ADDQ.L    #4,(A1)
  107. REMTAIL\@
  108.     ENDM
  109.     ENDC
  110.  
  111.